package com.applearning.appsware.triky;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;



    //<editor-fold desc="información general" >
/*      *AppsWare Colombia, 2015
        *Bogotá,Colombia,America del sur.
        *Licencia GNU GPL v3
        *
        */
//</editor-fold>



public class ActividadNuevoJuego extends ActionBarActivity {



    //<editor-fold desc="Informacion sobre version y autor/es">
    /**
     * @version 1.0 (1. 26/01/2015)
     * @author Javier Mayorga
     * @author Freddy Aparicio
     */
    //</editor-fold>



    private boolean change = true;
    int triqui[][]=new int[3][3];



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_nuevo_juego);
        android.support.v7.app.ActionBar actionBar= getSupportActionBar();
        actionBar.hide();

        //Posiciones objeto = new Posiciones();
        //objeto.Imprimir();
        InicializarTriqui();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    //<editor-fold desc="Eventos OnClick">
    public void Click1(View view) {
        ImageButton bt1 = (ImageButton)findViewById(R.id.ib1);
        if (change){
            bt1.setImageResource(R.drawable.o);
            ValVictoria(1, 0, 0);

            change=false;
        }else{
            bt1.setImageResource(R.drawable.x);
            ValVictoria(2, 0, 0);
            change=true;

        }
        bt1.setEnabled(false);

    }

    public void Click2(View view) {
        ImageButton bt2 = (ImageButton)findViewById(R.id.ib2);
        if (change){
            bt2.setImageResource(R.drawable.o);
            ValVictoria(1, 0, 1);
            change=false;
        }else{
            bt2.setImageResource(R.drawable.x);
            ValVictoria(2, 0, 1);
            change=true;

        }
        bt2.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click3(View view) {
        ImageButton bt3 = (ImageButton)findViewById(R.id.ib3);
        if (change){
            bt3.setImageResource(R.drawable.o);
            ValVictoria(1, 0, 2);
            change=false;
        }else{
            bt3.setImageResource(R.drawable.x);
            ValVictoria(2, 0, 2);
            change=true;

        }
        bt3.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click4(View view) {
        ImageButton bt4 = (ImageButton)findViewById(R.id.ib4);
        if (change){
            bt4.setImageResource(R.drawable.o);
            ValVictoria(1, 1, 0);
            change=false;
        }else{
            bt4.setImageResource(R.drawable.x);
            ValVictoria(2, 1, 0);
            change=true;

        }
        bt4.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click5(View view) {
        ImageButton bt5 = (ImageButton)findViewById(R.id.ib5);
        if (change){
            bt5.setImageResource(R.drawable.o);
            ValVictoria(1, 1, 1);
            change=false;
        }else{
            bt5.setImageResource(R.drawable.x);
            ValVictoria(2, 1, 1);
            change=true;

        }
        bt5.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click6(View view) {
        ImageButton bt6 = (ImageButton)findViewById(R.id.ib6);
        if (change){
            bt6.setImageResource(R.drawable.o);
            ValVictoria(1, 1, 2);
            change=false;
        }else{
            bt6.setImageResource(R.drawable.x);
            ValVictoria(2, 1, 2);
            change=true;

        }
        bt6.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click7(View view) {
        ImageButton bt7 = (ImageButton)findViewById(R.id.ib7);
        if (change){
            bt7.setImageResource(R.drawable.o);
            ValVictoria(1, 2, 0);
            change=false;
        }else{
            bt7.setImageResource(R.drawable.x);
            ValVictoria(2, 2, 0);
            change=true;

        }
        bt7.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click8(View view) {
        ImageButton bt8 = (ImageButton)findViewById(R.id.ib8);
        if (change){
            bt8.setImageResource(R.drawable.o);
            ValVictoria(1, 2, 1);
            change=false;
        }else{
            bt8.setImageResource(R.drawable.x);
            ValVictoria(2, 2, 1);
            change=true;

        }
        bt8.setEnabled(false);
        //ide=posiciones.getIde();
    }
    public void Click9(View view) {
        ImageButton bt9 = (ImageButton)findViewById(R.id.ib9);
        if (change){
            bt9.setImageResource(R.drawable.o);
            ValVictoria(1, 2, 2);
            change=false;
        }else{
            bt9.setImageResource(R.drawable.x);
            ValVictoria(2, 2, 2);
            change=true;

        }
        bt9.setEnabled(false);
        //ide=posiciones.getIde();
    }

    //</editor-fold>

    public void ValVictoria(int ident, int posfilas,int poscolumnas){

          //Identificador: identifica si la figura es X o O
                   //Posicion: Identifica la posicion de la figuraen la fila
                    //Posicion: Identifica la posicion de la figura en la columna
        int contador=0;

        //InicializarTriqui();

        triqui[posfilas][poscolumnas]=ident;


        //<editor-fold desc="Victorias horizontales-Verticales">
        while (contador<=2) {

            if (triqui[contador][0] == 1 && triqui[contador][1] == 1 && triqui[contador][2] == 1) {
                Toast.makeText(this, "El Ganador es O", Toast.LENGTH_LONG).show();
                // Fragment con la imagen de victoria y deciciones de repetir el juego o finalizar.
            } else {
                if (triqui[contador][0] == 2 && triqui[contador][1] == 2 && triqui[contador][2] == 2) {
                    Toast.makeText(this, "El Ganador es X", Toast.LENGTH_LONG).show();
                } else {
                    if (triqui[0][contador] == 1 && triqui[1][contador] == 1 && triqui[2][contador] == 1) {
                        Toast.makeText(this, "El Ganador es O", Toast.LENGTH_LONG).show();
                    } else {
                        if (triqui[0][contador] == 2 && triqui[1][contador] == 2 && triqui[2][contador] == 2) {
                            Toast.makeText(this, "El Ganador es X", Toast.LENGTH_LONG).show();
                        } else {
                            if (triqui[0][0] == 1 && triqui[1][1] == 1 && triqui[2][2] == 1) {
                                Toast.makeText(this, "El Ganador es O", Toast.LENGTH_LONG).show();
                            } else {
                                if (triqui[0][0] == 2 && triqui[1][1] == 2 && triqui[2][2] == 2) {
                                    Toast.makeText(this, "El Ganador es X", Toast.LENGTH_LONG).show();
                                } else if (triqui[0][2] == 1 && triqui[1][1] == 1 && triqui[2][0] == 1) {
                                    Toast.makeText(this, "El Ganador es O", Toast.LENGTH_LONG).show();
                                } else {
                                    if (triqui[0][2] == 2 && triqui[1][1] == 2 && triqui[2][0] == 2) {
                                        Toast.makeText(this, "El Ganador es X", Toast.LENGTH_LONG).show();
                                    }
                                }

                            }
                        }
                    }
                }
            }


            contador++;


        }//fin while
        //Toast.makeText(this,"El juego se ha empatado",Toast.LENGTH_LONG).show();

        //</editor-fold>

        //<editor-fold desc="Victorias en X">

        //</editor-fold>

    }

    public void InicializarTriqui() {

        for (int punteroInicializador=0;punteroInicializador<=2;++punteroInicializador){
            for (int punteroInicializador2=0;punteroInicializador2<=2;++punteroInicializador2){
                triqui[punteroInicializador][punteroInicializador2]=0;
            }
        }

    }
}
